package com.bjx.generator.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.bjx.generator.domain.entity.TemplateEntity;
import com.bjx.generator.domain.query.TemplateQuery;
import com.bjx.generator.domain.vo.TemplateVO;

import java.util.List;

/**
 * @desc: 代码模板业务
 * @author: liushuai
 * @date: 2022/9/8 15:11
 */
public interface ITemplateService {
    /**
     * 新增代码模板
     * @param templateVO
     * @Author: liushuai
     * @Date: 2022/9/8
     */
    void insertTemplate(TemplateVO templateVO);
    /**
     * 分页查询代码模板
     * @param templateQuery
     * @return: com.bjx.common.core.domain.R<com.baomidou.mybatisplus.core.metadata.IPage<com.bjx.generator.domain.vo.TemplateVO>>
     * @Author: liushuai
     * @Date: 2022/9/8
     */
    IPage<TemplateVO> listTemplatePage(TemplateQuery templateQuery);
    /**
     * 修改代码模板
     * @param templateVO
     * @return: com.bjx.common.core.domain.R
     * @Author: liushuai
     * @Date: 2022/9/8
     */
    void updateTemplateByTemplateId(TemplateVO templateVO);
    /**
     * 删除代码模板
     * @param templateId
     * @return: com.bjx.common.core.domain.R
     * @Author: liushuai
     * @Date: 2022/9/10 21:02
     */
    void deleteTemplateByTemplateId(Long templateId);
    /**
     * 根据id查询代码模板
     * @param templateId
     * @return: com.bjx.common.core.domain.R
     * @Author: liushuai
     * @Date: 2022/9/10 21:02
     */
    TemplateVO selectTemplateByTemplateId(Long templateId);

    /**
     * 根据模板id列表获取模板信息列表
     * @param templateIds
     * @return: java.util.List<com.bjx.generator.domain.entity.TemplateEntity>
     * @Author: liushuai
     * @Date: 2022/9/22 15:49
     */
    List<TemplateEntity> listTemplatesByTemplateIds(List<Long> templateIds);
    /**
     * 查询代码模板列表
     * @param templateQuery
     * @return: java.util.List<com.bjx.generator.domain.vo.TemplateVO>
     * @Author: liushuai
     * @Date: 2022/9/23 16:36
     */
    List<TemplateVO> listTemplate(TemplateQuery templateQuery);
}
